include $(srcdir)/Source/JavaScriptCore/GNUmakefile.list.am

lib_LTLIBRARIES += \
	libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la

# We are going to make everything public for now. When
# https://bugs.webkit.org/show_bug.cgi?id=27551 is fixed we'll able to
# simply rely on the usual symbol visibility flags.
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LDFLAGS = \
	-version-info @LIBJAVASCRIPTCOREGTK_VERSION@ \
	$(no_undefined)

nodist_EXTRA_libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
	$(javascriptcore_built_nosources)

nodist_libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
	$(javascriptcore_built_sources)

libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_ladir = $(libwebkitgtkincludedir)/JavaScriptCore
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEADERS = $(javascriptcore_h_api)

libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
	$(javascriptcore_sources)

libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD = \
	-lpthread \
	libWTF.la \
	$(UNICODE_LIBS) \
	$(GLIB_LIBS) \
	$(WINMM_LIBS)

libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CXXFLAGS = \
	$(global_cxxflags) \
	$(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS)

libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS = \
	-fstrict-aliasing \
	-O3 \
	$(javascriptcore_cflags)

libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS = \
	$(global_cppflags) \
	$(javascriptcore_cppflags)

javascriptcore_cppflags += \
	$(JSC_CPPFLAGS) \
	-I$(srcdir)/Source \
	-I$(srcdir)/Source/JavaScriptCore \
	-I$(srcdir)/Source/JavaScriptCore/API \
	-I$(srcdir)/Source/JavaScriptCore/assembler \
	-I$(srcdir)/Source/JavaScriptCore/bytecode \
	-I$(srcdir)/Source/JavaScriptCore/bytecompiler \
	-I$(srcdir)/Source/JavaScriptCore/dfg \
	-I$(srcdir)/Source/JavaScriptCore/disassembler \
	-I$(srcdir)/Source/JavaScriptCore/heap \
	-I$(srcdir)/Source/JavaScriptCore/debugger \
	-I$(srcdir)/Source/JavaScriptCore/ForwardingHeaders \
	-I$(srcdir)/Source/JavaScriptCore/interpreter \
	-I$(srcdir)/Source/JavaScriptCore/jit \
	-I$(srcdir)/Source/JavaScriptCore/jit \
	-I$(srcdir)/Source/JavaScriptCore/llint \
	-I$(srcdir)/Source/JavaScriptCore/parser \
	-I$(srcdir)/Source/JavaScriptCore/profiler \
	-I$(srcdir)/Source/JavaScriptCore/runtime \
	-I$(srcdir)/Source/JavaScriptCore/tools \
	-I$(srcdir)/Source/JavaScriptCore/yarr \
	-I$(top_builddir)/DerivedSources/JavaScriptCore

javascriptcore_cppflags += \
	-I$(srcdir)/Source/WTF

javascriptcore_cflags += \
	$(global_cflags) \
	$(GLIB_CFLAGS) \
	$(UNICODE_CFLAGS)

pkgconfig_DATA += Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION@.pc

$(shell mkdir -p DerivedSources/JavaScriptCore)

DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table
	$(AM_V_GEN)$(PERL) $^ > $@

DerivedSources/JavaScriptCore/%.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/runtime/%.cpp
	$(AM_V_GEN)$(PERL) $^ -i > $@

DerivedSources/JavaScriptCore/RegExpJitTables.h: $(srcdir)/Source/JavaScriptCore/create_regex_tables
	$(AM_V_GEN)$(PYTHON) $^ > $@

DerivedSources/JavaScriptCore/KeywordLookup.h: $(srcdir)/Source/JavaScriptCore/KeywordLookupGenerator.py $(srcdir)/Source/JavaScriptCore/parser/Keywords.table
	$(AM_V_GEN)$(PYTHON) $^ > $@

DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $(llint_nosources) $(offlineasm_nosources)
	$(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@

$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h

DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT)
	$(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@

$(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h

jsc: $(javascriptcore_built_nosources) Programs/jsc$(EXEEXT)

bin_PROGRAMS += \
	Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT)

noinst_PROGRAMS += \
	Programs/jsc \
	Programs/minidom \
	Programs/LLIntOffsetsExtractor

Programs_minidom_CPPFLAGS = \
	$(global_cppflags) \
	$(javascriptcore_cppflags)

Programs_minidom_CFLAGS = \
	-ansi \
	-fno-strict-aliasing \
	$(global_cflags) \
	$(GLOBALDEPS_CFLAGS)

Programs_minidom_LDADD = \
	libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \
	$(WINMM_LIBS) \
	-lm \
	-lpthread \
	-lstdc++

Programs_minidom_LDFLAGS = \
	-no-install \
	-no-fast-install

Programs_LLIntOffsetsExtractor_CPPFLAGS = \
	$(global_cppflags) \
	$(javascriptcore_cppflags)

Programs_LLIntOffsetsExtractor_CFLAGS = \
	-ansi \
	-fno-strict-aliasing \
	$(global_cflags) \
	$(GLOBALDEPS_CFLAGS)

Programs_LLIntOffsetsExtractor_LDADD = \
	-lpthread \
	libWTF.la \
	$(UNICODE_LIBS) \
	$(GLIB_LIBS) \
	$(WINMM_LIBS) \
	-lm \
	-lpthread \
	-lstdc++

Programs_LLIntOffsetsExtractor_LDFLAGS = \
	-no-install \
	-no-fast-install

# jsc
Programs/jsc$(EXEEXT): Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT)
	$(AM_V_GEN)cp -f Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT) Programs/jsc$(EXEEXT)
Programs_jsc_LDADD =
Programs_jsc_SOURCES =

Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_CPPFLAGS = \
	$(global_cppflags) \
	$(javascriptcore_cppflags)

Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_CXXFLAGS = \
	-fno-strict-aliasing \
	$(global_cxxflags) \
	$(global_cflags) \
	$(GLOBALDEPS_CFLAGS) \
	$(UNICODE_CFLAGS)

Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_LDADD = \
	-lpthread \
	libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \
	$(WINMM_LIBS)

EXTRA_DIST += \
	Source/JavaScriptCore/AUTHORS \
	Source/JavaScriptCore/ChangeLog \
	Source/JavaScriptCore/COPYING.LIB \
	Source/JavaScriptCore/create_hash_table \
	Source/JavaScriptCore/create_regex_tables \
	Source/JavaScriptCore/icu/LICENSE \
	Source/JavaScriptCore/icu/README \
	Source/JavaScriptCore/KeywordLookupGenerator.py \
	Source/JavaScriptCore/parser/Keywords.table \
	Source/JavaScriptCore/THANKS \
	$(llint_nosources) \
	$(offlineasm_nosources)

CLEANFILES += \
	$(javascriptcore_built_nosources) \
	Programs/jsc \
	Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@ \
	Programs/LLIntOffsetsExtractor \
	Programs/minidom

DISTCLEANFILES += \
	$(top_builddir)/Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION@.pc

if ENABLE_INTROSPECTION
# The GIR file is generated via autoconf, as we don't need to run the scanner against non-GObject libraries.
JavaScriptCore-@WEBKITGTK_API_VERSION@.typelib: JavaScriptCore-@WEBKITGTK_API_VERSION@.gir $(G_IR_COMPILER)
	$(AM_V_GEN)$(G_IR_COMPILER) --includedir $(WebKit) --includedir $(top_builddir) $< -o $@

gir_DATA += JavaScriptCore-@WEBKITGTK_API_VERSION@.gir
typelibs_DATA += JavaScriptCore-@WEBKITGTK_API_VERSION@.typelib
CLEANFILES += JavaScriptCore-@WEBKITGTK_API_VERSION@.gir JavaScriptCore-@WEBKITGTK_API_VERSION@.typelib
endif
